<?

/**
 * Lord_View_Helper_Acl
 * 
 * Плагин для проверки прав доступа к ресурсам
 * Используется в скриптах вида для скрытия или отображения 
 * управляющих элементов
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */

class Lord_View_Helper_Acl  
{

/*------------------------------------------------------------------------------*/

	public function Acl($text       = 'link',
                        $module     = 'default',
						$controller = 'index',
						$action     = 'index',
                        $params     = array()) 
	{        
		// Получаем объект  вида
		$view  = Zend_Registry::get('smarty');
 
		$acl = Acl::getInstance();   
		$isAllow = $acl->isAllowed($view->user->roleName, $module.'_'.$controller, $action);

        // параметры для формирования ссылки
        $parametres = '';
        if(!empty($params) and is_array($params))
        {
            foreach($params as $k=>$v)
            {
                $parametres .= '/' . $k . '/' . $v ;
            }
        }
        
        // формируем ссылку
		if($isAllow == true) 
		{                         
            $preIcon = explode('_', $text);
            $icon = $preIcon[count($preIcon) - 1];
            $link = '';
            // разрешенные типы файлов для иконок
            $allowedFileTypes = array('png', 'gif', 'jpg');
            // для каждого типа файлов поищеи иконку                                 
            foreach($allowedFileTypes as $type)                                    
            {
                if(is_file('design/images/icons/' . $icon . '.' . $type)) 
                {
                    $link = '<img src="'.$view->imagesUrl.'icons/'.$icon . '.'.$type.'" 
                                  alt="'.$view->translate($text).'"
                                  title="'.$view->translate($text).'"
                                  >';
                }
            }
            // если текст ссылки все еще пустой - значит картинки нет и покажем текст
            if($link == '')
            {
                $link = $view->translate($text);
            }
              
            
                     
            $linkCode = '<a href="'.$view->baseUrl
                           .$module
                           .'/'.$controller
                           .'/'.$action
                           .$parametres.'">'.$link.'</a>';
            
            if($text == '') return true;
            else echo $linkCode; 
            
		}
		else 
        {
            echo $linkCode = '';
            return false;
        }
	}

/*------------------------------------------------------------------------------*/
}
